import axios from 'axios';
import  {ElMessage}  from 'element-plus'
import 'element-plus/theme-chalk/el-message.css'
import {useUserStore } from "@/stores/user";
// 创建一个 Axios 实例
const instance = axios.create({
    // 请求的基础URL
    baseURL: 'http://localhost:8080',
    // 请求超时时间
    timeout: 5000,
    // 请求头部信息
    headers: {
        'Content-Type': 'application/json',
    },   
});
//实打
// 请求拦截器
instance.interceptors.request.use(
    (config) => {
        // const userStore=useUserStore()
        // const token =userStore.userInfo.data.token
        // if(token)
        
            // config.headers.Authorization=`Bearer ${token}`
            const userStore=useUserStore();
         //开始并没有token然后根据是否有token分两种模式登录和未登录状态  登录之后有token每次发送请求携带token
       if (userStore.userInfo.token) {
               config.headers['Token']=userStore.userInfo.token
        }
        // // 请求前的操作，比如添加 token 到请求头
        // if (localStorage.token) { //判断token是否存在
        //     config.headers.Authorization = localStorage.token;  //将token设置成请求头
        // }
        return config;  //添加这一行

    },
    (error) => {
        return Promise.reject(error);
    }
);

// 响应拦截器
instance.interceptors.response.use(
    (response) => {
        // 对响应数据进行处理
        return response.data;
    },
    (error) => {
        // 错误拦截器提示语
ElMessage({
    type:'error',
    message:'登录错误'
})
        return Promise.reject(error);
    }
);
// 封装 GET 方法
function get(url, params) {
    return instance.get(url, { params });
}

// 封装 POST 方法
function post(url, data) {
    return instance.post(url, data);
}

// 封装 PUT 方法
function put(url, data) {
    return instance.put(url, data);
}

// 封装 DELETE 方法
function del(url, params) {
    return instance.delete(url, { params });
}

// 导出封装后的请求方法
export default {
    get,
    post,
    put,
    del,
};